package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.saas.domain.entity.PublicGroupEntity;

import java.util.List;
import java.util.Map;

/**
 * @description: 公海池分组
 * @Author: hongxiao
 * @date: 2019-03-03 17:27
 * @since v1.0
 */
public interface PublicGroupModel extends IModel<PublicGroupEntity> {
    /**
     * 保存
     * @param entity 实体
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-03-03 17:40
     * @since v1.0
     * @version v1.0
     */
    Integer save(PublicGroupEntity entity) throws XbbException;

    /**
     * 删除
     * @param key 主键
     * @param corpid 公司id
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-03-03 17:41
     * @since v1.0
     * @version v1.0
     */
    Integer deleteByKey( Long key, String corpid);

    /**
     * 获取公海池分组
     * @param key 主键
     * @param corpid 公司id
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-03-03 17:41
     * @since v1.0
     * @version v1.0
     */
    PublicGroupEntity getByKey( Long key, String corpid);

    /**
     * 获取有公海分组设置的公司数
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-03-03 17:42
     * @since v1.0
     * @version v1.0
     */
    Integer getCorpsCount();

    /**
     *  找到符合条件的公司id
     * @param param 入参
     * @return
     * @throws
     *
     * @author hongxiao
     * @date: 2019-03-03 17:43
     * @since v1.0
     * @version v1.0
     */
    List<String> findCorpIds(Map<String ,Object> param);

    /**
     * 公司已启用的公司池分组
     * @param corpid 公司id
     * @param formId 表单id
     * @return
     * @throws
     * @author hongxiao
     * @date 2019-06-06 10:40
     * @since v1.0
     * @version v1.0
     */
    List<PublicGroupEntity> enableListByFormId(String corpid, Long formId);

    List<PublicGroupEntity> enableListByFormIdList(String corpid, List<Long> formIdList);
}
